home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 3: CDPD 3 / Almathera Ten on Ten - Disc 3: CDPD3.iso / fish / 701-725 / 708 / intuisup / intuisup42.lha / Intuisup / source.lha / Editor / edit1.c < prev    next >
C/C++ Source or Header  |  1992-03-21  |  33KB  |  848 lines

  1. /* $Revision Header *** Header built automatically - do not edit! ***********
  2.  *
  3.  *    (C) Copyright 1991 by Torsten Jürgeleit
  4.  *
  5.  *    Name .....: edit1.c
  6.  *    Created ..: Sunday 22-Dec-91 21:22:18
  7.  *    Revision .: 0
  8.  *
  9.  *    Date        Author                 Comment
  10.  *    =========   ====================   ====================
  11.  *    22-Dec-91   Torsten Jürgeleit      Created this file!
  12.  *
  13.  ****************************************************************************
  14.  *
  15.  *    Edit ISUP objects - part 1
  16.  *
  17.  * $Revision Header ********************************************************/
  18.  
  19.     /* Includes */
  20.  
  21. #include "includes.h"
  22. #include "defines.h"
  23. #include "imports.h"
  24. #include "protos.h"
  25.  
  26.     /* Defines for edit gadgets */
  27.  
  28. #define EDIT_GADGET_XOFFSET    (EDIT_GADGET4_LEFT_EDGE - EDIT_GADGET1_LEFT_EDGE - 3 * EDIT_GADGET1_WIDTH) / 3
  29.  
  30. #define EDIT_GADGET1_TYPE        GADGET_DATA_TYPE_BUTTON
  31. #define EDIT_GADGET1_FLAGS        GADGET_DATA_FLAG_HOTKEY
  32. #define EDIT_GADGET1_LEFT_EDGE        10
  33. #define EDIT_GADGET1_TOP_EDGE        (EDITOR_WINDOW_HEIGHT - EDIT_GADGET1_HEIGHT - 5)
  34. #define EDIT_GADGET1_WIDTH        ((7 + 2) * 8)
  35. #define EDIT_GADGET1_HEIGHT        15
  36. #define EDIT_GADGET1_TEXT        "_Ok"
  37. #define EDIT_GADGET1_TEXT_ATTR        &topaz80_attr
  38.  
  39. #define EDIT_GADGET2_TYPE        GADGET_DATA_TYPE_BUTTON
  40. #define EDIT_GADGET2_FLAGS        GADGET_DATA_FLAG_HOTKEY
  41. #define EDIT_GADGET2_LEFT_EDGE        (EDIT_GADGET1_LEFT_EDGE + EDIT_GADGET1_WIDTH + EDIT_GADGET_XOFFSET)
  42. #define EDIT_GADGET2_TOP_EDGE        (EDITOR_WINDOW_HEIGHT - EDIT_GADGET2_HEIGHT - 5)
  43. #define EDIT_GADGET2_WIDTH        EDIT_GADGET1_WIDTH
  44. #define EDIT_GADGET2_HEIGHT        EDIT_GADGET1_HEIGHT
  45. #define EDIT_GADGET2_TEXT        "_Default"
  46. #define EDIT_GADGET2_TEXT_ATTR        &topaz80_attr
  47.  
  48. #define EDIT_GADGET3_TYPE        GADGET_DATA_TYPE_BUTTON
  49. #define EDIT_GADGET3_FLAGS        GADGET_DATA_FLAG_HOTKEY
  50. #define EDIT_GADGET3_LEFT_EDGE        (EDIT_GADGET4_LEFT_EDGE - EDIT_GADGET3_WIDTH - EDIT_GADGET_XOFFSET)
  51. #define EDIT_GADGET3_TOP_EDGE        (EDITOR_WINDOW_HEIGHT - EDIT_GADGET3_HEIGHT - 5)
  52. #define EDIT_GADGET3_WIDTH        EDIT_GADGET1_WIDTH
  53. #define EDIT_GADGET3_HEIGHT        EDIT_GADGET1_HEIGHT
  54. #define EDIT_GADGET3_TEXT        "S_witch"
  55. #define EDIT_GADGET3_TEXT_ATTR        &topaz80_attr
  56.  
  57. #define EDIT_GADGET4_TYPE        GADGET_DATA_TYPE_BUTTON
  58. #define EDIT_GADGET4_FLAGS        GADGET_DATA_FLAG_HOTKEY
  59. #define EDIT_GADGET4_LEFT_EDGE        (EDITOR_WINDOW_WIDTH - EDIT_GADGET4_WIDTH - 10)
  60. #define EDIT_GADGET4_TOP_EDGE        (EDITOR_WINDOW_HEIGHT - EDIT_GADGET4_HEIGHT - 5)
  61. #define EDIT_GADGET4_WIDTH        EDIT_GADGET1_WIDTH
  62. #define EDIT_GADGET4_HEIGHT        EDIT_GADGET1_HEIGHT
  63. #define EDIT_GADGET4_TEXT        "_Cancel"
  64. #define EDIT_GADGET4_TEXT_ATTR        &topaz80_attr
  65.  
  66.     /* Statics for edit gadgets */
  67.  
  68. STATIC struct GadgetData  edit_gadget_data[] = {
  69.    {
  70.     EDIT_GADGET1_TYPE,        /* gd_Type */
  71.     EDIT_GADGET1_FLAGS,        /* gd_Flags */
  72.     EDIT_GADGET1_LEFT_EDGE,        /* gd_LeftEdge */
  73.     EDIT_GADGET1_TOP_EDGE,        /* gd_TopEdge */
  74.     EDIT_GADGET1_WIDTH,        /* gd_Width */
  75.     EDIT_GADGET1_HEIGHT,        /* gd_Height */
  76.     EDIT_GADGET1_TEXT,        /* *gd_Text */
  77.     EDIT_GADGET1_TEXT_ATTR,        /* *gd_TextAttr */
  78.     { 0, 0, 0 }
  79.    }, {
  80.     EDIT_GADGET2_TYPE,        /* gd_Type */
  81.     EDIT_GADGET2_FLAGS,        /* gd_Flags */
  82.     EDIT_GADGET2_LEFT_EDGE,        /* gd_LeftEdge */
  83.     EDIT_GADGET2_TOP_EDGE,        /* gd_TopEdge */
  84.     EDIT_GADGET2_WIDTH,        /* gd_Width */
  85.     EDIT_GADGET2_HEIGHT,        /* gd_Height */
  86.     EDIT_GADGET2_TEXT,        /* *gd_Text */
  87.     EDIT_GADGET2_TEXT_ATTR,        /* *gd_TextAttr */
  88.     { 0, 0, 0 }
  89.    }, {
  90.     EDIT_GADGET3_TYPE,        /* gd_Type */
  91.     EDIT_GADGET3_FLAGS,        /* gd_Flags */
  92.     EDIT_GADGET3_LEFT_EDGE,        /* gd_LeftEdge */
  93.     EDIT_GADGET3_TOP_EDGE,        /* gd_TopEdge */
  94.     EDIT_GADGET3_WIDTH,        /* gd_Width */
  95.     EDIT_GADGET3_HEIGHT,        /* gd_Height */
  96.     EDIT_GADGET3_TEXT,        /* *gd_Text */
  97.     EDIT_GADGET3_TEXT_ATTR,        /* *gd_TextAttr */
  98.     { 0, 0, 0 }
  99.    }, {
  100.     EDIT_GADGET4_TYPE,        /* gd_Type */
  101.     EDIT_GADGET4_FLAGS,        /* gd_Flags */
  102.     EDIT_GADGET4_LEFT_EDGE,        /* gd_LeftEdge */
  103.     EDIT_GADGET4_TOP_EDGE,        /* gd_TopEdge */
  104.     EDIT_GADGET4_WIDTH,        /* gd_Width */
  105.     EDIT_GADGET4_HEIGHT,        /* gd_Height */
  106.     EDIT_GADGET4_TEXT,        /* *gd_Text */
  107.     EDIT_GADGET4_TEXT_ATTR,        /* *gd_TextAttr */
  108.     { 0, 0, 0 }
  109.    }, {
  110.     INTUISUP_DATA_END        /* mark end of gadget data array */
  111.    }
  112. };
  113.     /* Defines for border data */
  114.  
  115. #define BORDER_GADGET1_TYPE        GADGET_DATA_TYPE_STRING
  116. #define BORDER_GADGET1_FLAGS        (GADGET_DATA_FLAG_HOTKEY | GADGET_DATA_FLAG_TEXT_LEFT | GADGET_DATA_FLAG_INPUT_AUTO_ACTIVATE)
  117. #define BORDER_GADGET1_LEFT_EDGE    (180 + (4 + 1) * 8)
  118. #define BORDER_GADGET1_TOP_EDGE        30
  119. #define BORDER_GADGET1_WIDTH        100
  120. #define BORDER_GADGET1_HEIGHT        12
  121. #define BORDER_GADGET1_TEXT        "_Name"
  122. #define BORDER_GADGET1_TEXT_ATTR    &topaz80_attr
  123. #define BORDER_GADGET1_INPUT_LEN    MAX_TEMPLATE_NAME_LEN
  124. #define BORDER_GADGET1_INPUT_ACTIVATE    ((ULONG)BORDER_GADGET_NAME << 16 | BORDER_GADGET_NAME)
  125. #define BORDER_GADGET1_INPUT_DEFAULT    NULL
  126.  
  127. #define BORDER_GADGET2_TYPE        GADGET_DATA_TYPE_CYCLE
  128. #define BORDER_GADGET2_FLAGS        (GADGET_DATA_FLAG_HOTKEY | GADGET_DATA_FLAG_TEXT_LEFT)
  129. #define BORDER_GADGET2_TEXT        "_Type"
  130. #define BORDER_GADGET2_LEFT_EDGE    BORDER_GADGET1_LEFT_EDGE
  131. #define BORDER_GADGET2_TOP_EDGE        (BORDER_GADGET1_TOP_EDGE + BORDER_GADGET1_HEIGHT + 10)
  132. #define BORDER_GADGET2_WIDTH        (20 + (11 + 2) * 8)
  133. #define BORDER_GADGET2_HEIGHT        15
  134. #define BORDER_GADGET2_TEXT_ATTR    &topaz80_attr
  135. #define BORDER_GADGET2_ACTIVE        0
  136. #define BORDER_GADGET2_TEXT_ARRAY    &border_type_text_array[0]
  137.  
  138.     /* Statics for edit gadgets */
  139.  
  140. STATIC BYTE *border_type_text_array[] = {
  141.    "Box 1 - Out", "Box 1 - In", "Box 2 - Out", "Box 2 - In", NULL
  142. };
  143. STATIC struct GadgetData  border_gadget_data[] = {
  144.    {
  145.     BORDER_GADGET1_TYPE,        /* gd_Type */
  146.     BORDER_GADGET1_FLAGS,        /* gd_Flags */
  147.     BORDER_GADGET1_LEFT_EDGE,    /* gd_LeftEdge */
  148.     BORDER_GADGET1_TOP_EDGE,    /* gd_TopEdge */
  149.     BORDER_GADGET1_WIDTH,        /* gd_Width */
  150.     BORDER_GADGET1_HEIGHT,        /* gd_Height */
  151.     BORDER_GADGET1_TEXT,        /* *gd_Text */
  152.     BORDER_GADGET1_TEXT_ATTR,    /* *gd_TextAttr */
  153.     {
  154.     BORDER_GADGET1_INPUT_LEN,    /* gd_InputLen */
  155.     BORDER_GADGET1_INPUT_ACTIVATE,    /* gd_InputActivate */
  156.     BORDER_GADGET1_INPUT_DEFAULT    /* gd_InputDefault */
  157.     }
  158.    }, {
  159.     BORDER_GADGET2_TYPE,        /* gd_Type */
  160.     BORDER_GADGET2_FLAGS,        /* gd_Flags */
  161.     BORDER_GADGET2_LEFT_EDGE,    /* gd_LeftEdge */
  162.     BORDER_GADGET2_TOP_EDGE,    /* gd_TopEdge */
  163.     BORDER_GADGET2_WIDTH,        /* gd_Width */
  164.     BORDER_GADGET2_HEIGHT,        /* gd_Height */
  165.     BORDER_GADGET2_TEXT,        /* *gd_Text */
  166.     BORDER_GADGET2_TEXT_ATTR,    /* *gd_TextAttr */
  167.     {
  168.     0,                /* gd_CyclePad */
  169.     BORDER_GADGET2_ACTIVE,        /* gd_CycleActive */
  170.     BORDER_GADGET2_TEXT_ARRAY    /* *gd_CycleTextArray */
  171.     }
  172.    }, {
  173.     INTUISUP_DATA_END        /* mark end of gadget data array */
  174.    }
  175. };
  176.     /* Defines for text data */
  177.  
  178. #define TEXT_GADGET1_TYPE        GADGET_DATA_TYPE_STRING
  179. #define TEXT_GADGET1_FLAGS        (GADGET_DATA_FLAG_HOTKEY | GADGET_DATA_FLAG_TEXT_LEFT | GADGET_DATA_FLAG_INPUT_AUTO_ACTIVATE)
  180. #define TEXT_GADGET1_LEFT_EDGE        (50 + (4 + 1) * 8)
  181. #define TEXT_GADGET1_TOP_EDGE        20
  182. #define TEXT_GADGET1_WIDTH        100
  183. #define TEXT_GADGET1_HEIGHT        12
  184. #define TEXT_GADGET1_TEXT        "_Name"
  185. #define TEXT_GADGET1_TEXT_ATTR        &topaz80_attr
  186. #define TEXT_GADGET1_INPUT_LEN        MAX_TEMPLATE_NAME_LEN
  187. #define TEXT_GADGET1_INPUT_ACTIVATE    ((ULONG)TEXT_GADGET_TEXT << 16 | TEXT_GADGET_FONT)
  188. #define TEXT_GADGET1_INPUT_DEFAULT    NULL
  189.  
  190. #define TEXT_GADGET2_TYPE        GADGET_DATA_TYPE_STRING
  191. #define TEXT_GADGET2_FLAGS        (GADGET_DATA_FLAG_HOTKEY | GADGET_DATA_FLAG_TEXT_LEFT | GADGET_DATA_FLAG_INPUT_AUTO_ACTIVATE)
  192. #define TEXT_GADGET2_LEFT_EDGE        TEXT_GADGET1_LEFT_EDGE
  193. #define TEXT_GADGET2_TOP_EDGE        (TEXT_GADGET1_TOP_EDGE + TEXT_GADGET1_HEIGHT + 4)
  194. #define TEXT_GADGET2_WIDTH        TEXT_GADGET1_WIDTH
  195. #define TEXT_GADGET2_HEIGHT        TEXT_GADGET1_HEIGHT
  196. #define TEXT_GADGET2_TEXT        "Te_xt"
  197. #define TEXT_GADGET2_TEXT_ATTR        &topaz80_attr
  198. #define TEXT_GADGET2_INPUT_LEN        MAX_TEXT_LEN
  199. #define TEXT_GADGET2_INPUT_ACTIVATE    ((ULONG)TEXT_GADGET_FONT << 16 | TEXT_GADGET_NAME)
  200. #define TEXT_GADGET2_INPUT_DEFAULT    NULL
  201.  
  202. #define TEXT_GADGET3_TYPE        GADGET_DATA_TYPE_STRING
  203. #define TEXT_GADGET3_FLAGS        (GADGET_DATA_FLAG_HOTKEY | GADGET_DATA_FLAG_TEXT_LEFT | GADGET_DATA_FLAG_INPUT_AUTO_ACTIVATE)
  204. #define TEXT_GADGET3_LEFT_EDGE        TEXT_GADGET1_LEFT_EDGE
  205. #define TEXT_GADGET3_TOP_EDGE        (TEXT_GADGET2_TOP_EDGE + TEXT_GADGET2_HEIGHT + 4)
  206. #define TEXT_GADGET3_WIDTH        TEXT_GADGET1_WIDTH
  207. #define TEXT_GADGET3_HEIGHT        TEXT_GADGET1_HEIGHT
  208. #define TEXT_GADGET3_TEXT        "_Font"
  209. #define TEXT_GADGET3_TEXT_ATTR        &topaz80_attr
  210. #define TEXT_GADGET3_INPUT_LEN        MAX_TEXT_LEN
  211. #define TEXT_GADGET3_INPUT_ACTIVATE    ((ULONG)TEXT_GADGET_NAME << 16 | TEXT_GADGET_TEXT)
  212. #define TEXT_GADGET3_INPUT_DEFAULT    NULL
  213.  
  214. #define TEXT_GADGET4_TYPE        GADGET_DATA_TYPE_COUNT
  215. #define TEXT_GADGET4_FLAGS        (GADGET_DATA_FLAG_HOTKEY | GADGET_DATA_FLAG_TEXT_LEFT)
  216. #define TEXT_GADGET4_LEFT_EDGE        (TEXT_GADGET5_LEFT_EDGE + TEXT_GADGET5_WIDTH - TEXT_GADGET4_WIDTH)
  217. #define TEXT_GADGET4_TOP_EDGE        TEXT_GADGET3_TOP_EDGE
  218. #define TEXT_GADGET4_WIDTH        60
  219. #define TEXT_GADGET4_HEIGHT        12
  220. #define TEXT_GADGET4_TEXT        "_Size"
  221. #define TEXT_GADGET4_TEXT_ATTR        &topaz80_attr
  222. #define TEXT_GADGET4_COUNT_MIN        5
  223. #define TEXT_GADGET4_COUNT_MAX        200
  224. #define TEXT_GADGET4_COUNT_VALUE    NULL
  225.  
  226. #define TEXT_GADGET5_TYPE        GADGET_DATA_TYPE_CYCLE
  227. #define TEXT_GADGET5_FLAGS        (GADGET_DATA_FLAG_HOTKEY | GADGET_DATA_FLAG_TEXT_LEFT)
  228. #define TEXT_GADGET5_TEXT        "_Type"
  229. #define TEXT_GADGET5_LEFT_EDGE        TEXT_GADGET1_LEFT_EDGE
  230. #define TEXT_GADGET5_TOP_EDGE        (TEXT_GADGET3_TOP_EDGE + TEXT_GADGET3_HEIGHT + 4)
  231. #define TEXT_GADGET5_WIDTH        (20 + (23 + 2) * 8)
  232. #define TEXT_GADGET5_HEIGHT        15
  233. #define TEXT_GADGET5_TEXT_ATTR        &topaz80_attr
  234. #define TEXT_GADGET5_ACTIVE        0
  235. #define TEXT_GADGET5_TEXT_ARRAY        &text_type_text_array[0]
  236.  
  237. #define TEXT_GADGET6_TYPE        GADGET_DATA_TYPE_CHECK
  238. #define TEXT_GADGET6_FLAGS        (GADGET_DATA_FLAG_HOTKEY | GADGET_DATA_FLAG_TEXT_RIGHT)
  239. #define TEXT_GADGET6_TEXT        "_Bold"
  240. #define TEXT_GADGET6_LEFT_EDGE        (TEXT_GADGET5_LEFT_EDGE + TEXT_GADGET5_WIDTH + 50)
  241. #define TEXT_GADGET6_TOP_EDGE        TEXT_GADGET1_TOP_EDGE
  242. #define TEXT_GADGET6_WIDTH        0
  243. #define TEXT_GADGET6_HEIGHT        0
  244. #define TEXT_GADGET6_TEXT_ATTR        &topaz80_attr
  245.  
  246. #define TEXT_GADGET7_TYPE        GADGET_DATA_TYPE_CHECK
  247. #define TEXT_GADGET7_FLAGS        (GADGET_DATA_FLAG_HOTKEY | GADGET_DATA_FLAG_TEXT_RIGHT)
  248. #define TEXT_GADGET7_TEXT        "_Italic"
  249. #define TEXT_GADGET7_LEFT_EDGE        TEXT_GADGET6_LEFT_EDGE
  250. #define TEXT_GADGET7_TOP_EDGE        (TEXT_GADGET6_TOP_EDGE + 13)
  251. #define TEXT_GADGET7_WIDTH        0
  252. #define TEXT_GADGET7_HEIGHT        0
  253. #define TEXT_GADGET7_TEXT_ATTR        &topaz80_attr
  254.  
  255. #define TEXT_GADGET8_TYPE        GADGET_DATA_TYPE_CHECK
  256. #define TEXT_GADGET8_FLAGS        (GADGET_DATA_FLAG_HOTKEY | GADGET_DATA_FLAG_TEXT_RIGHT)
  257. #define TEXT_GADGET8_TEXT        "_Underline"
  258. #define TEXT_GADGET8_LEFT_EDGE        TEXT_GADGET6_LEFT_EDGE
  259. #define TEXT_GADGET8_TOP_EDGE        (TEXT_GADGET7_TOP_EDGE + 13)
  260. #define TEXT_GADGET8_WIDTH        0
  261. #define TEXT_GADGET8_HEIGHT        0
  262. #define TEXT_GADGET8_TEXT_ATTR        &topaz80_attr
  263.  
  264. #define TEXT_GADGET9_TYPE        GADGET_DATA_TYPE_CHECK
  265. #define TEXT_GADGET9_FLAGS        (GADGET_DATA_FLAG_HOTKEY | GADGET_DATA_FLAG_TEXT_RIGHT)
  266. #define TEXT_GADGET9_TEXT        "Color_2"
  267. #define TEXT_GADGET9_LEFT_EDGE        TEXT_GADGET6_LEFT_EDGE
  268. #define TEXT_GADGET9_TOP_EDGE        (TEXT_GADGET8_TOP_EDGE + 13)
  269. #define TEXT_GADGET9_WIDTH        0
  270. #define TEXT_GADGET9_HEIGHT        0
  271. #define TEXT_GADGET9_TEXT_ATTR        &topaz80_attr
  272.  
  273. #define TEXT_GADGET10_TYPE        GADGET_DATA_TYPE_CHECK
  274. #define TEXT_GADGET10_FLAGS        (GADGET_DATA_FLAG_HOTKEY | GADGET_DATA_FLAG_TEXT_RIGHT)
  275. #define TEXT_GADGET10_TEXT        "Co_mplement"
  276. #define TEXT_GADGET10_LEFT_EDGE        TEXT_GADGET6_LEFT_EDGE
  277. #define TEXT_GADGET10_TOP_EDGE        (TEXT_GADGET9_TOP_EDGE + 13)
  278. #define TEXT_GADGET10_WIDTH        0
  279. #define TEXT_GADGET10_HEIGHT        0
  280. #define TEXT_GADGET10_TEXT_ATTR        &topaz80_attr
  281.  
  282.     /* Statics for edit gadgets */
  283.  
  284. STATIC BYTE *text_type_text_array[] = {
  285.    "Text", "Unsigned decimal number", "Signed decimal number", "Hex number",
  286.    "Binary number", NULL
  287. };
  288. struct GadgetData  text_gadget_data[] = {
  289.    {
  290.     TEXT_GADGET1_TYPE,        /* gd_Type */
  291.     TEXT_GADGET1_FLAGS,        /* gd_Flags */
  292.     TEXT_GADGET1_LEFT_EDGE,        /* gd_LeftEdge */
  293.     TEXT_GADGET1_TOP_EDGE,        /* gd_TopEdge */
  294.     TEXT_GADGET1_WIDTH,        /* gd_Width */
  295.     TEXT_GADGET1_HEIGHT,        /* gd_Height */
  296.     TEXT_GADGET1_TEXT,        /* *gd_Text */
  297.     TEXT_GADGET1_TEXT_ATTR,        /* *gd_TextAttr */
  298.     {
  299.     TEXT_GADGET1_INPUT_LEN,        /* gd_InputLen */
  300.     TEXT_GADGET1_INPUT_ACTIVATE,    /* gd_InputActivate */
  301.     TEXT_GADGET1_INPUT_DEFAULT    /* gd_InputDefault */
  302.     }
  303.    }, {
  304.     TEXT_GADGET2_TYPE,        /* gd_Type */
  305.     TEXT_GADGET2_FLAGS,        /* gd_Flags */
  306.     TEXT_GADGET2_LEFT_EDGE,        /* gd_LeftEdge */
  307.     TEXT_GADGET2_TOP_EDGE,        /* gd_TopEdge */
  308.     TEXT_GADGET2_WIDTH,        /* gd_Width */
  309.     TEXT_GADGET2_HEIGHT,        /* gd_Height */
  310.     TEXT_GADGET2_TEXT,        /* *gd_Text */
  311.     TEXT_GADGET2_TEXT_ATTR,        /* *gd_TextAttr */
  312.     {
  313.     TEXT_GADGET2_INPUT_LEN,        /* gd_InputLen */
  314.     TEXT_GADGET2_INPUT_ACTIVATE,    /* gd_InputActivate */
  315.     TEXT_GADGET2_INPUT_DEFAULT    /* gd_InputDefault */
  316.     }
  317.    }, {
  318.     TEXT_GADGET3_TYPE,        /* gd_Type */
  319.     TEXT_GADGET3_FLAGS,        /* gd_Flags */
  320.     TEXT_GADGET3_LEFT_EDGE,        /* gd_LeftEdge */
  321.     TEXT_GADGET3_TOP_EDGE,        /* gd_TopEdge */
  322.     TEXT_GADGET3_WIDTH,        /* gd_Width */
  323.     TEXT_GADGET3_HEIGHT,        /* gd_Height */
  324.     TEXT_GADGET3_TEXT,        /* *gd_Text */
  325.     TEXT_GADGET3_TEXT_ATTR,        /* *gd_TextAttr */
  326.     {
  327.     TEXT_GADGET3_INPUT_LEN,        /* gd_InputLen */
  328.     TEXT_GADGET3_INPUT_ACTIVATE,    /* gd_InputActivate */
  329.     TEXT_GADGET3_INPUT_DEFAULT    /* gd_InputDefault */
  330.     }
  331.    }, {
  332.     TEXT_GADGET4_TYPE,        /* gd_Type */
  333.     TEXT_GADGET4_FLAGS,        /* gd_Flags */
  334.     TEXT_GADGET4_LEFT_EDGE,        /* gd_LeftEdge */
  335.     TEXT_GADGET4_TOP_EDGE,        /* gd_TopEdge */
  336.     TEXT_GADGET4_WIDTH,        /* gd_Width */
  337.     TEXT_GADGET4_HEIGHT,        /* gd_Height */
  338.     TEXT_GADGET4_TEXT,        /* *gd_Text */
  339.     TEXT_GADGET4_TEXT_ATTR,        /* *gd_TextAttr */
  340.     {
  341.     TEXT_GADGET4_COUNT_MIN,        /* gd_CountMin */
  342.     TEXT_GADGET4_COUNT_MAX,        /* gd_CountMax */
  343.     TEXT_GADGET4_COUNT_VALUE    /* gd_CountValue */
  344.     }
  345.    }, {
  346.     TEXT_GADGET5_TYPE,        /* gd_Type */
  347.     TEXT_GADGET5_FLAGS,        /* gd_Flags */
  348.     TEXT_GADGET5_LEFT_EDGE,        /* gd_LeftEdge */
  349.     TEXT_GADGET5_TOP_EDGE,        /* gd_TopEdge */
  350.     TEXT_GADGET5_WIDTH,        /* gd_Width */
  351.     TEXT_GADGET5_HEIGHT,        /* gd_Height */
  352.     TEXT_GADGET5_TEXT,        /* *gd_Text */
  353.     TEXT_GADGET5_TEXT_ATTR,        /* *gd_TextAttr */
  354.     {
  355.     0,                /* gd_CyclePad */
  356.     TEXT_GADGET5_ACTIVE,        /* gd_CycleActive */
  357.     TEXT_GADGET5_TEXT_ARRAY        /* *gd_CycleTextArray */
  358.     }
  359.    }, {
  360.     TEXT_GADGET6_TYPE,        /* gd_Type */
  361.     TEXT_GADGET6_FLAGS,        /* gd_Flags */
  362.     TEXT_GADGET6_LEFT_EDGE,        /* gd_LeftEdge */
  363.     TEXT_GADGET6_TOP_EDGE,        /* gd_TopEdge */
  364.     TEXT_GADGET6_WIDTH,        /* gd_Width */
  365.     TEXT_GADGET6_HEIGHT,        /* gd_Height */
  366.     TEXT_GADGET6_TEXT,        /* *gd_Text */
  367.     TEXT_GADGET6_TEXT_ATTR,        /* *gd_TextAttr */
  368.     { 0, 0, 0 }
  369.    }, {
  370.     TEXT_GADGET7_TYPE,        /* gd_Type */
  371.     TEXT_GADGET7_FLAGS,        /* gd_Flags */
  372.     TEXT_GADGET7_LEFT_EDGE,        /* gd_LeftEdge */
  373.     TEXT_GADGET7_TOP_EDGE,        /* gd_TopEdge */
  374.     TEXT_GADGET7_WIDTH,        /* gd_Width */
  375.     TEXT_GADGET7_HEIGHT,        /* gd_Height */
  376.     TEXT_GADGET7_TEXT,        /* *gd_Text */
  377.     TEXT_GADGET7_TEXT_ATTR,        /* *gd_TextAttr */
  378.     { 0, 0, 0 }
  379.    }, {
  380.     TEXT_GADGET8_TYPE,        /* gd_Type */
  381.     TEXT_GADGET8_FLAGS,        /* gd_Flags */
  382.     TEXT_GADGET8_LEFT_EDGE,        /* gd_LeftEdge */
  383.     TEXT_GADGET8_TOP_EDGE,        /* gd_TopEdge */
  384.     TEXT_GADGET8_WIDTH,        /* gd_Width */
  385.     TEXT_GADGET8_HEIGHT,        /* gd_Height */
  386.     TEXT_GADGET8_TEXT,        /* *gd_Text */
  387.     TEXT_GADGET8_TEXT_ATTR,        /* *gd_TextAttr */
  388.     { 0, 0, 0 }
  389.    }, {
  390.     TEXT_GADGET9_TYPE,        /* gd_Type */
  391.     TEXT_GADGET9_FLAGS,        /* gd_Flags */
  392.     TEXT_GADGET9_LEFT_EDGE,        /* gd_LeftEdge */
  393.     TEXT_GADGET9_TOP_EDGE,        /* gd_TopEdge */
  394.     TEXT_GADGET9_WIDTH,        /* gd_Width */
  395.     TEXT_GADGET9_HEIGHT,        /* gd_Height */
  396.     TEXT_GADGET9_TEXT,        /* *gd_Text */
  397.     TEXT_GADGET9_TEXT_ATTR,        /* *gd_TextAttr */
  398.     { 0, 0, 0 }
  399.    }, {
  400.     TEXT_GADGET10_TYPE,        /* gd_Type */
  401.     TEXT_GADGET10_FLAGS,        /* gd_Flags */
  402.     TEXT_GADGET10_LEFT_EDGE,    /* gd_LeftEdge */
  403.     TEXT_GADGET10_TOP_EDGE,        /* gd_TopEdge */
  404.     TEXT_GADGET10_WIDTH,        /* gd_Width */
  405.     TEXT_GADGET10_HEIGHT,        /* gd_Height */
  406.     TEXT_GADGET10_TEXT,        /* *gd_Text */
  407.     TEXT_GADGET10_TEXT_ATTR,    /* *gd_TextAttr */
  408.     { 0, 0, 0 }
  409.    }, {
  410.     INTUISUP_DATA_END        /* mark end of gadget data array */
  411.    }
  412. };
  413.     /* Defines for normal gadget data */
  414.  
  415. #define NORMAL_GADGET1_TYPE        GADGET_DATA_TYPE_STRING
  416. #define NORMAL_GADGET1_FLAGS        (GADGET_DATA_FLAG_HOTKEY | GADGET_DATA_FLAG_TEXT_LEFT | GADGET_DATA_FLAG_INPUT_AUTO_ACTIVATE)
  417. #define NORMAL_GADGET1_LEFT_EDGE    (50 + (4 + 1) * 8)
  418. #define NORMAL_GADGET1_TOP_EDGE        20
  419. #define NORMAL_GADGET1_WIDTH        100
  420. #define NORMAL_GADGET1_HEIGHT        12
  421. #define NORMAL_GADGET1_TEXT        "_Name"
  422. #define NORMAL_GADGET1_TEXT_ATTR    &topaz80_attr
  423. #define NORMAL_GADGET1_INPUT_LEN    MAX_TEMPLATE_NAME_LEN
  424. #define NORMAL_GADGET1_INPUT_ACTIVATE    ((ULONG)NORMAL_GADGET_TEXT << 16 | NORMAL_GADGET_FONT)
  425. #define NORMAL_GADGET1_INPUT_DEFAULT    NULL
  426.  
  427. #define NORMAL_GADGET2_TYPE        GADGET_DATA_TYPE_STRING
  428. #define NORMAL_GADGET2_FLAGS        (GADGET_DATA_FLAG_HOTKEY | GADGET_DATA_FLAG_TEXT_LEFT | GADGET_DATA_FLAG_INPUT_AUTO_ACTIVATE)
  429. #define NORMAL_GADGET2_LEFT_EDGE    NORMAL_GADGET1_LEFT_EDGE
  430. #define NORMAL_GADGET2_TOP_EDGE        (NORMAL_GADGET1_TOP_EDGE + NORMAL_GADGET1_HEIGHT + 4)
  431. #define NORMAL_GADGET2_WIDTH        NORMAL_GADGET1_WIDTH
  432. #define NORMAL_GADGET2_HEIGHT        NORMAL_GADGET1_HEIGHT
  433. #define NORMAL_GADGET2_TEXT        "Te_xt"
  434. #define NORMAL_GADGET2_TEXT_ATTR    &topaz80_attr
  435. #define NORMAL_GADGET2_INPUT_LEN    MAX_TEXT_LEN
  436. #define NORMAL_GADGET2_INPUT_ACTIVATE    ((ULONG)NORMAL_GADGET_FONT << 16 | NORMAL_GADGET_NAME)
  437. #define NORMAL_GADGET2_INPUT_DEFAULT    NULL
  438.  
  439. #define NORMAL_GADGET3_TYPE        GADGET_DATA_TYPE_STRING
  440. #define NORMAL_GADGET3_FLAGS        (GADGET_DATA_FLAG_HOTKEY | GADGET_DATA_FLAG_TEXT_LEFT | GADGET_DATA_FLAG_INPUT_AUTO_ACTIVATE)
  441. #define NORMAL_GADGET3_LEFT_EDGE    NORMAL_GADGET1_LEFT_EDGE
  442. #define NORMAL_GADGET3_TOP_EDGE        (NORMAL_GADGET2_TOP_EDGE + NORMAL_GADGET2_HEIGHT + 4)
  443. #define NORMAL_GADGET3_WIDTH        NORMAL_GADGET1_WIDTH
  444. #define NORMAL_GADGET3_HEIGHT        NORMAL_GADGET1_HEIGHT
  445. #define NORMAL_GADGET3_TEXT        "_Font"
  446. #define NORMAL_GADGET3_TEXT_ATTR    &topaz80_attr
  447. #define NORMAL_GADGET3_INPUT_LEN    MAX_TEXT_LEN
  448. #define NORMAL_GADGET3_INPUT_ACTIVATE    ((ULONG)NORMAL_GADGET_NAME << 16 | NORMAL_GADGET_TEXT)
  449. #define NORMAL_GADGET3_INPUT_DEFAULT    NULL
  450.  
  451. #define NORMAL_GADGET4_TYPE        GADGET_DATA_TYPE_COUNT
  452. #define NORMAL_GADGET4_FLAGS        (GADGET_DATA_FLAG_HOTKEY | GADGET_DATA_FLAG_TEXT_LEFT)
  453. #define NORMAL_GADGET4_LEFT_EDGE    (NORMAL_GADGET5_LEFT_EDGE + NORMAL_GADGET5_WIDTH - NORMAL_GADGET4_WIDTH)
  454. #define NORMAL_GADGET4_TOP_EDGE        NORMAL_GADGET3_TOP_EDGE
  455. #define NORMAL_GADGET4_WIDTH        60
  456. #define NORMAL_GADGET4_HEIGHT        12
  457. #define NORMAL_GADGET4_TEXT        "_Size"
  458. #define NORMAL_GADGET4_TEXT_ATTR    &topaz80_attr
  459. #define NORMAL_GADGET4_COUNT_MIN    5
  460. #define NORMAL_GADGET4_COUNT_MAX    200
  461. #define NORMAL_GADGET4_COUNT_VALUE    NULL
  462.  
  463. #define NORMAL_GADGET5_TYPE        GADGET_DATA_TYPE_CYCLE
  464. #define NORMAL_GADGET5_FLAGS        (GADGET_DATA_FLAG_HOTKEY | GADGET_DATA_FLAG_TEXT_LEFT)
  465. #define NORMAL_GADGET5_TEXT        "_Pos"
  466. #define NORMAL_GADGET5_LEFT_EDGE    NORMAL_GADGET1_LEFT_EDGE
  467. #define NORMAL_GADGET5_TOP_EDGE        (NORMAL_GADGET3_TOP_EDGE + NORMAL_GADGET3_HEIGHT + 4)
  468. #define NORMAL_GADGET5_WIDTH        (20 + (23 + 2) * 8)
  469. #define NORMAL_GADGET5_HEIGHT        15
  470. #define NORMAL_GADGET5_TEXT_ATTR    &topaz80_attr
  471. #define NORMAL_GADGET5_ACTIVE        0
  472. #define NORMAL_GADGET5_TEXT_ARRAY    &normal_text_pos_text_array[0]
  473.  
  474. #define NORMAL_GADGET6_TYPE        GADGET_DATA_TYPE_CHECK
  475. #define NORMAL_GADGET6_FLAGS        (GADGET_DATA_FLAG_HOTKEY | GADGET_DATA_FLAG_TEXT_RIGHT)
  476. #define NORMAL_GADGET6_TEXT        "Dis_abled"
  477. #define NORMAL_GADGET6_LEFT_EDGE    (NORMAL_GADGET5_LEFT_EDGE + NORMAL_GADGET5_WIDTH + 50)
  478. #define NORMAL_GADGET6_TOP_EDGE        NORMAL_GADGET1_TOP_EDGE
  479. #define NORMAL_GADGET6_WIDTH        0
  480. #define NORMAL_GADGET6_HEIGHT        0
  481. #define NORMAL_GADGET6_TEXT_ATTR    &topaz80_attr
  482.  
  483. #define NORMAL_GADGET7_TYPE        GADGET_DATA_TYPE_CHECK
  484. #define NORMAL_GADGET7_FLAGS        (GADGET_DATA_FLAG_HOTKEY | GADGET_DATA_FLAG_TEXT_RIGHT)
  485. #define NORMAL_GADGET7_TEXT        "No _Border"
  486. #define NORMAL_GADGET7_LEFT_EDGE    NORMAL_GADGET6_LEFT_EDGE
  487. #define NORMAL_GADGET7_TOP_EDGE        (NORMAL_GADGET6_TOP_EDGE + 13)
  488. #define NORMAL_GADGET7_WIDTH        0
  489. #define NORMAL_GADGET7_HEIGHT        0
  490. #define NORMAL_GADGET7_TEXT_ATTR    &topaz80_attr
  491.  
  492. #define NORMAL_GADGET8_TYPE        GADGET_DATA_TYPE_CHECK
  493. #define NORMAL_GADGET8_FLAGS        (GADGET_DATA_FLAG_HOTKEY | GADGET_DATA_FLAG_TEXT_RIGHT)
  494. #define NORMAL_GADGET8_TEXT        "_High Comp"
  495. #define NORMAL_GADGET8_LEFT_EDGE    NORMAL_GADGET6_LEFT_EDGE
  496. #define NORMAL_GADGET8_TOP_EDGE        (NORMAL_GADGET7_TOP_EDGE + 13)
  497. #define NORMAL_GADGET8_WIDTH        0
  498. #define NORMAL_GADGET8_HEIGHT        0
  499. #define NORMAL_GADGET8_TEXT_ATTR    &topaz80_attr
  500.  
  501. #define NORMAL_GADGET9_TYPE        GADGET_DATA_TYPE_CHECK
  502. #define NORMAL_GADGET9_FLAGS        (GADGET_DATA_FLAG_HOTKEY | GADGET_DATA_FLAG_TEXT_RIGHT)
  503. #define NORMAL_GADGET9_TEXT        "Hot _Key"
  504. #define NORMAL_GADGET9_LEFT_EDGE    NORMAL_GADGET6_LEFT_EDGE
  505. #define NORMAL_GADGET9_TOP_EDGE        (NORMAL_GADGET8_TOP_EDGE + 13)
  506. #define NORMAL_GADGET9_WIDTH        0
  507. #define NORMAL_GADGET9_HEIGHT        0
  508. #define NORMAL_GADGET9_TEXT_ATTR    &topaz80_attr
  509.  
  510. #define NORMAL_GADGET10_TYPE        GADGET_DATA_TYPE_CHECK
  511. #define NORMAL_GADGET10_FLAGS        (GADGET_DATA_FLAG_HOTKEY | GADGET_DATA_FLAG_TEXT_RIGHT)
  512. #define NORMAL_GADGET10_TEXT        "Color _2"
  513. #define NORMAL_GADGET10_LEFT_EDGE    NORMAL_GADGET6_LEFT_EDGE
  514. #define NORMAL_GADGET10_TOP_EDGE    (NORMAL_GADGET9_TOP_EDGE + 13)
  515. #define NORMAL_GADGET10_WIDTH        0
  516. #define NORMAL_GADGET10_HEIGHT        0
  517. #define NORMAL_GADGET10_TEXT_ATTR    &topaz80_attr
  518.  
  519.     /* Statics for normal gadgets */
  520.  
  521. STATIC BYTE *normal_text_pos_text_array[] = {
  522.    "Left of Select Box", "Right of Select Box", "Above the Select Box",
  523.    "Below the Select Box", "Inside of Select Box", NULL
  524. };
  525. struct GadgetData  normal_gadget_data[] = {
  526.    {
  527.     NORMAL_GADGET1_TYPE,        /* gd_Type */
  528.     NORMAL_GADGET1_FLAGS,        /* gd_Flags */
  529.     NORMAL_GADGET1_LEFT_EDGE,    /* gd_LeftEdge */
  530.     NORMAL_GADGET1_TOP_EDGE,    /* gd_TopEdge */
  531.     NORMAL_GADGET1_WIDTH,        /* gd_Width */
  532.     NORMAL_GADGET1_HEIGHT,        /* gd_Height */
  533.     NORMAL_GADGET1_TEXT,        /* *gd_Text */
  534.     NORMAL_GADGET1_TEXT_ATTR,    /* *gd_TextAttr */
  535.     {
  536.     NORMAL_GADGET1_INPUT_LEN,    /* gd_InputLen */
  537.     NORMAL_GADGET1_INPUT_ACTIVATE,    /* gd_InputActivate */
  538.     NORMAL_GADGET1_INPUT_DEFAULT    /* gd_InputDefault */
  539.     }
  540.    }, {
  541.     NORMAL_GADGET2_TYPE,        /* gd_Type */
  542.     NORMAL_GADGET2_FLAGS,        /* gd_Flags */
  543.     NORMAL_GADGET2_LEFT_EDGE,    /* gd_LeftEdge */
  544.     NORMAL_GADGET2_TOP_EDGE,    /* gd_TopEdge */
  545.     NORMAL_GADGET2_WIDTH,        /* gd_Width */
  546.     NORMAL_GADGET2_HEIGHT,        /* gd_Height */
  547.     NORMAL_GADGET2_TEXT,        /* *gd_Text */
  548.     NORMAL_GADGET2_TEXT_ATTR,    /* *gd_TextAttr */
  549.     {
  550.     NORMAL_GADGET2_INPUT_LEN,    /* gd_InputLen */
  551.     NORMAL_GADGET2_INPUT_ACTIVATE,    /* gd_InputActivate */
  552.     NORMAL_GADGET2_INPUT_DEFAULT    /* gd_InputDefault */
  553.     }
  554.    }, {
  555.     NORMAL_GADGET3_TYPE,        /* gd_Type */
  556.     NORMAL_GADGET3_FLAGS,        /* gd_Flags */
  557.     NORMAL_GADGET3_LEFT_EDGE,    /* gd_LeftEdge */
  558.     NORMAL_GADGET3_TOP_EDGE,    /* gd_TopEdge */
  559.     NORMAL_GADGET3_WIDTH,        /* gd_Width */
  560.     NORMAL_GADGET3_HEIGHT,        /* gd_Height */
  561.     NORMAL_GADGET3_TEXT,        /* *gd_Text */
  562.     NORMAL_GADGET3_TEXT_ATTR,    /* *gd_TextAttr */
  563.     {
  564.     NORMAL_GADGET3_INPUT_LEN,    /* gd_InputLen */
  565.     NORMAL_GADGET3_INPUT_ACTIVATE,    /* gd_InputActivate */
  566.     NORMAL_GADGET3_INPUT_DEFAULT    /* gd_InputDefault */
  567.     }
  568.    }, {
  569.     NORMAL_GADGET4_TYPE,        /* gd_Type */
  570.     NORMAL_GADGET4_FLAGS,        /* gd_Flags */
  571.     NORMAL_GADGET4_LEFT_EDGE,    /* gd_LeftEdge */
  572.     NORMAL_GADGET4_TOP_EDGE,    /* gd_TopEdge */
  573.     NORMAL_GADGET4_WIDTH,        /* gd_Width */
  574.     NORMAL_GADGET4_HEIGHT,        /* gd_Height */
  575.     NORMAL_GADGET4_TEXT,        /* *gd_Text */
  576.     NORMAL_GADGET4_TEXT_ATTR,    /* *gd_TextAttr */
  577.     {
  578.     NORMAL_GADGET4_COUNT_MIN,    /* gd_CountMin */
  579.     NORMAL_GADGET4_COUNT_MAX,    /* gd_CountMax */
  580.     NORMAL_GADGET4_COUNT_VALUE    /* gd_CountValue */
  581.     }
  582.    }, {
  583.     NORMAL_GADGET5_TYPE,        /* gd_Type */
  584.     NORMAL_GADGET5_FLAGS,        /* gd_Flags */
  585.     NORMAL_GADGET5_LEFT_EDGE,    /* gd_LeftEdge */
  586.     NORMAL_GADGET5_TOP_EDGE,    /* gd_TopEdge */
  587.     NORMAL_GADGET5_WIDTH,        /* gd_Width */
  588.     NORMAL_GADGET5_HEIGHT,        /* gd_Height */
  589.     NORMAL_GADGET5_TEXT,        /* *gd_Text */
  590.     NORMAL_GADGET5_TEXT_ATTR,    /* *gd_TextAttr */
  591.     {
  592.     0,                /* gd_CyclePad */
  593.     NORMAL_GADGET5_ACTIVE,        /* gd_CycleActive */
  594.     NORMAL_GADGET5_TEXT_ARRAY    /* *gd_CycleTextArray */
  595.     }
  596.    }, {
  597.     NORMAL_GADGET6_TYPE,        /* gd_Type */
  598.     NORMAL_GADGET6_FLAGS,        /* gd_Flags */
  599.     NORMAL_GADGET6_LEFT_EDGE,    /* gd_LeftEdge */
  600.     NORMAL_GADGET6_TOP_EDGE,    /* gd_TopEdge */
  601.     NORMAL_GADGET6_WIDTH,        /* gd_Width */
  602.     NORMAL_GADGET6_HEIGHT,        /* gd_Height */
  603.     NORMAL_GADGET6_TEXT,        /* *gd_Text */
  604.     NORMAL_GADGET6_TEXT_ATTR,    /* *gd_TextAttr */
  605.     { 0, 0, 0 }
  606.    }, {
  607.     NORMAL_GADGET7_TYPE,        /* gd_Type */
  608.     NORMAL_GADGET7_FLAGS,        /* gd_Flags */
  609.     NORMAL_GADGET7_LEFT_EDGE,    /* gd_LeftEdge */
  610.     NORMAL_GADGET7_TOP_EDGE,    /* gd_TopEdge */
  611.     NORMAL_GADGET7_WIDTH,        /* gd_Width */
  612.     NORMAL_GADGET7_HEIGHT,        /* gd_Height */
  613.     NORMAL_GADGET7_TEXT,        /* *gd_Text */
  614.     NORMAL_GADGET7_TEXT_ATTR,    /* *gd_TextAttr */
  615.     { 0, 0, 0 }
  616.    }, {
  617.     NORMAL_GADGET8_TYPE,        /* gd_Type */
  618.     NORMAL_GADGET8_FLAGS,        /* gd_Flags */
  619.     NORMAL_GADGET8_LEFT_EDGE,    /* gd_LeftEdge */
  620.     NORMAL_GADGET8_TOP_EDGE,    /* gd_TopEdge */
  621.     NORMAL_GADGET8_WIDTH,        /* gd_Width */
  622.     NORMAL_GADGET8_HEIGHT,        /* gd_Height */
  623.     NORMAL_GADGET8_TEXT,        /* *gd_Text */
  624.     NORMAL_GADGET8_TEXT_ATTR,    /* *gd_TextAttr */
  625.     { 0, 0, 0 }
  626.    }, {
  627.     NORMAL_GADGET9_TYPE,        /* gd_Type */
  628.     NORMAL_GADGET9_FLAGS,        /* gd_Flags */
  629.     NORMAL_GADGET9_LEFT_EDGE,    /* gd_LeftEdge */
  630.     NORMAL_GADGET9_TOP_EDGE,    /* gd_TopEdge */
  631.     NORMAL_GADGET9_WIDTH,        /* gd_Width */
  632.     NORMAL_GADGET9_HEIGHT,        /* gd_Height */
  633.     NORMAL_GADGET9_TEXT,        /* *gd_Text */
  634.     NORMAL_GADGET9_TEXT_ATTR,    /* *gd_TextAttr */
  635.     { 0, 0, 0 }
  636.    }, {
  637.     NORMAL_GADGET10_TYPE,        /* gd_Type */
  638.     NORMAL_GADGET10_FLAGS,        /* gd_Flags */
  639.     NORMAL_GADGET10_LEFT_EDGE,    /* gd_LeftEdge */
  640.     NORMAL_GADGET10_TOP_EDGE,    /* gd_TopEdge */
  641.     NORMAL_GADGET10_WIDTH,        /* gd_Width */
  642.     NORMAL_GADGET10_HEIGHT,        /* gd_Height */
  643.     NORMAL_GADGET10_TEXT,        /* *gd_Text */
  644.     NORMAL_GADGET10_TEXT_ATTR,    /* *gd_TextAttr */
  645.     { 0, 0, 0 }
  646.    }, {
  647.     INTUISUP_DATA_END        /* mark end of gadget data array */
  648.    }
  649. };
  650.     /* Edit template data */
  651.  
  652.    SHORT
  653. edit_template_data(VOID)
  654. {
  655.    struct Template    *tp = selected_template;
  656.    struct BorderData  *bd;
  657.    struct TextData    *td;
  658.    struct GadgetData  *gd, *gd1, *gd2, *gd3;
  659.    APTR  gl1, gl2, gl3, gl4;
  660.    ULONG flags;
  661.    SHORT status;
  662.  
  663.    /* Init normal and special gadget data */
  664.    switch (TEMPLATE_GROUP(tp)) {
  665.       case TEMPLATE_GROUP_BORDER :
  666.      bd  = &tp->tp_Data.tp_BorderData;
  667.      gd1 = &border_gadget_data[0];
  668.      gd2 = NULL;
  669.      gd3 = NULL;
  670.  
  671.      /* Init normal gadget data */
  672.      (gd1 + BORDER_GADGET_NAME)->gd_SpecialData.gd_InputData.gd_InputDefault = &tp->tp_TemplateName[0];
  673.      (gd1 + BORDER_GADGET_TYPE)->gd_SpecialData.gd_CycleData.gd_CycleActive  = bd->bd_Type - 1;
  674.      break;
  675.  
  676.       case TEMPLATE_GROUP_TEXT :
  677.      td    = &tp->tp_Data.tp_TextData;
  678.      gd1   = &text_gadget_data[0];
  679.      gd2   = NULL;
  680.      gd3   = NULL;
  681.      flags = td->td_Flags;
  682.  
  683.      /* Init normal gadget data */
  684.      (gd1 + TEXT_GADGET_NAME)->gd_SpecialData.gd_InputData.gd_InputDefault = &tp->tp_TemplateName[0];
  685.      (gd1 + TEXT_GADGET_TEXT)->gd_SpecialData.gd_InputData.gd_InputDefault = td->td_Text;
  686.      (gd1 + TEXT_GADGET_TEXT)->gd_Flags &= ~(GADGET_DATA_FLAG_STRING_UNSIGNED_DEC | GADGET_DATA_FLAG_STRING_SIGNED_DEC | GADGET_DATA_FLAG_STRING_HEX | GADGET_DATA_FLAG_STRING_BIN);
  687.      switch (td->td_Type) {
  688.         case TEXT_DATA_TYPE_NUM_UNSIGNED_DEC :
  689.            (gd1 + TEXT_GADGET_TEXT)->gd_Flags |= GADGET_DATA_FLAG_STRING_UNSIGNED_DEC;
  690.            break;
  691.  
  692.         case TEXT_DATA_TYPE_NUM_SIGNED_DEC :
  693.            (gd1 + TEXT_GADGET_TEXT)->gd_Flags |= GADGET_DATA_FLAG_STRING_SIGNED_DEC;
  694.            break;
  695.  
  696.         case TEXT_DATA_TYPE_NUM_HEX :
  697.            (gd1 + TEXT_GADGET_TEXT)->gd_Flags |= GADGET_DATA_FLAG_STRING_HEX;
  698.            break;
  699.  
  700.         case TEXT_DATA_TYPE_NUM_BIN :
  701.            (gd1 + TEXT_GADGET_TEXT)->gd_Flags |= GADGET_DATA_FLAG_STRING_BIN;
  702.            break;
  703.      }
  704. Printf("(gd + TEXT_GADGET_TEXT)=$%lx   flags=$%lx\n", (gd1 + TEXT_GADGET_TEXT), (gd1 + TEXT_GADGET_TEXT)->gd_Flags);
  705.      (gd1 + TEXT_GADGET_FONT)->gd_SpecialData.gd_InputData.gd_InputDefault        = (BYTE *)td->td_TextAttr->ta_Name;
  706.      (gd1 + TEXT_GADGET_SIZE)->gd_SpecialData.gd_CountData.gd_CountValue          = td->td_TextAttr->ta_YSize;
  707.      (gd1 + TEXT_GADGET_TYPE)->gd_SpecialData.gd_CycleData.gd_CycleActive         = td->td_Type - 1;
  708.      (gd1 + TEXT_GADGET_BOLD)->gd_SpecialData.gd_CheckData.gd_CheckSelected       = (flags & TEXT_DATA_FLAG_BOLD ? 1 : 0);
  709.      (gd1 + TEXT_GADGET_ITALIC)->gd_SpecialData.gd_CheckData.gd_CheckSelected     = (flags & TEXT_DATA_FLAG_ITALIC ? 1 : 0);
  710.      (gd1 + TEXT_GADGET_UNDERLINED)->gd_SpecialData.gd_CheckData.gd_CheckSelected = (flags & TEXT_DATA_FLAG_UNDERLINED ? 1 : 0);
  711.      (gd1 + TEXT_GADGET_COLOR2)->gd_SpecialData.gd_CheckData.gd_CheckSelected     = (flags & TEXT_DATA_FLAG_COLOR2 ? 1 : 0);
  712.      (gd1 + TEXT_GADGET_COMPLEMENT)->gd_SpecialData.gd_CheckData.gd_CheckSelected = (flags & TEXT_DATA_FLAG_COMPLEMENT ? 1 : 0);
  713.      break;
  714.  
  715.       case TEMPLATE_GROUP_GADGET :
  716.      gd    = &tp->tp_Data.tp_GadgetData;
  717.      gd1   = &normal_gadget_data[0];
  718.      flags = gd->gd_Flags;
  719.  
  720.      /* Init normal gadget data */
  721.      (gd1 + NORMAL_GADGET_NAME)->gd_SpecialData.gd_InputData.gd_InputDefault = &tp->tp_TemplateName[0];
  722.      (gd1 + NORMAL_GADGET_TEXT)->gd_SpecialData.gd_InputData.gd_InputDefault = gd->gd_Text;
  723.      (gd1 + NORMAL_GADGET_FONT)->gd_SpecialData.gd_InputData.gd_InputDefault = (BYTE *)gd->gd_TextAttr->ta_Name;
  724.      (gd1 + NORMAL_GADGET_SIZE)->gd_SpecialData.gd_CountData.gd_CountValue   = gd->gd_TextAttr->ta_YSize;
  725.      switch (GADGET_TEXT_POS_MASK(gd->gd_Flags)) {
  726.         case GADGET_DATA_FLAG_TEXT_LEFT :
  727.            (gd1 + NORMAL_GADGET_POS)->gd_SpecialData.gd_CycleData.gd_CycleActive = TEXT_POS_LEFT;
  728.            break;
  729.  
  730.         case GADGET_DATA_FLAG_TEXT_RIGHT :
  731.            (gd1 + NORMAL_GADGET_POS)->gd_SpecialData.gd_CycleData.gd_CycleActive = TEXT_POS_RIGHT;
  732.            break;
  733.  
  734.         case GADGET_DATA_FLAG_TEXT_ABOVE :
  735.            (gd1 + NORMAL_GADGET_POS)->gd_SpecialData.gd_CycleData.gd_CycleActive = TEXT_POS_ABOVE;
  736.            break;
  737.  
  738.         case GADGET_DATA_FLAG_TEXT_BELOW :
  739.            (gd1 + NORMAL_GADGET_POS)->gd_SpecialData.gd_CycleData.gd_CycleActive = TEXT_POS_BELOW;
  740.            break;
  741.  
  742.         default :
  743.            (gd1 + NORMAL_GADGET_POS)->gd_SpecialData.gd_CycleData.gd_CycleActive = TEXT_POS_INSIDE;
  744.            break;
  745.      }
  746.      (gd1 + NORMAL_GADGET_DISABLED)->gd_SpecialData.gd_CheckData.gd_CheckSelected  = (flags & GADGET_DATA_FLAG_DISABLED ? 1 : 0);
  747.      (gd1 + NORMAL_GADGET_NO_BORDER)->gd_SpecialData.gd_CheckData.gd_CheckSelected = (flags & GADGET_DATA_FLAG_NO_BORDER ? 1 : 0);
  748.      (gd1 + NORMAL_GADGET_HIGHCOMP)->gd_SpecialData.gd_CheckData.gd_CheckSelected  = (flags & GADGET_DATA_FLAG_HIGH_COMP ? 1 : 0);
  749.      (gd1 + NORMAL_GADGET_HOTKEY)->gd_SpecialData.gd_CheckData.gd_CheckSelected    = (flags & GADGET_DATA_FLAG_HOTKEY ? 1 : 0);
  750.      (gd1 + NORMAL_GADGET_COLOR2)->gd_SpecialData.gd_CheckData.gd_CheckSelected    = (flags & GADGET_DATA_FLAG_TEXT_COLOR2 ? 1 : 0);
  751.      
  752.      /* Init special gadget data */
  753.      switch (gd->gd_Type) {
  754.         case GADGET_DATA_TYPE_BUTTON :
  755.         case GADGET_DATA_TYPE_CHECK :
  756.            gd2 = NULL;
  757.            gd3 = NULL;
  758.            break;
  759.  
  760.         case GADGET_DATA_TYPE_MX :
  761.            gd2 = &list_gadget_data[0];
  762.            gd3 = NULL;
  763.            break;
  764.  
  765.         case GADGET_DATA_TYPE_STRING :
  766.            gd2 = NULL;
  767.            gd3 = NULL;
  768.            break;
  769.  
  770.         case GADGET_DATA_TYPE_INTEGER :
  771.            gd2 = NULL;
  772.            gd3 = NULL;
  773.            break;
  774.  
  775.         case GADGET_DATA_TYPE_SLIDER :
  776.            gd2 = NULL;
  777.            gd3 = NULL;
  778.            break;
  779.  
  780.         case GADGET_DATA_TYPE_SCROLLER :
  781.            gd2 = NULL;
  782.            gd3 = NULL;
  783.            break;
  784.  
  785.         case GADGET_DATA_TYPE_CYCLE :
  786.            gd2 = &list_gadget_data[0];
  787.            gd3 = NULL;
  788.            break;
  789.  
  790.         case GADGET_DATA_TYPE_COUNT :
  791.            gd2 = NULL;
  792.            gd3 = NULL;
  793.            break;
  794.  
  795.         case GADGET_DATA_TYPE_LISTVIEW :
  796.            gd2 = &list_gadget_data[0];
  797.            gd3 = NULL;
  798.            break;
  799.  
  800.         case GADGET_DATA_TYPE_PALETTE :
  801.            gd2 = NULL;
  802.            gd3 = NULL;
  803.            break;
  804.      }
  805.      break;
  806.    }
  807.  
  808.    /* If special gadget data needed then enable 'SWITCH' gadget */
  809.    if (gd2 || gd3) {
  810.       edit_gadget_data[EDIT_GADGET_SWITCH].gd_Flags &= ~GADGET_DATA_FLAG_DISABLED;
  811.       gl2 = NULL;
  812.       gl3 = NULL;
  813.    } else {
  814.       edit_gadget_data[EDIT_GADGET_SWITCH].gd_Flags |= GADGET_DATA_FLAG_DISABLED;
  815.    }
  816.  
  817.    /* Create gadget lists */
  818.    if (!(gl1 = ICreateGadgets(eri, gd1, 0, 0, NULL))) {
  819.       status = EDITOR_ERROR_OUT_OF_MEM;
  820.    } else {
  821.       if (gd2 && !(gl2 = ICreateGadgets(eri, gd2, 0, 0, NULL))) {
  822.      status = EDITOR_ERROR_OUT_OF_MEM;
  823.       } else {
  824.      if (gd3 && !(gl3 = ICreateGadgets(eri, gd3, 0, 0, NULL))) {
  825.         status = EDITOR_ERROR_OUT_OF_MEM;
  826.      } else {
  827.         if (!(gl4 = ICreateGadgets(eri, &edit_gadget_data[0], 0, 0,
  828.                                    NULL))) {
  829.            status = EDITOR_ERROR_OUT_OF_MEM;
  830.         } else {
  831.            status = edit_template_data_action(tp, gl1, gl2, gl3, gl4);
  832.            IFreeGadgets(gl4);
  833.         }
  834.         if (gd3) {
  835.            IFreeGadgets(gl3);
  836.         }
  837.      }
  838.      if (gd2) {
  839.         IFreeGadgets(gl2);
  840.      }
  841.       }
  842.       IFreeGadgets(gl1);
  843.    }
  844.    show_error(status);
  845.    MWCheck();
  846.    return(status);
  847. }
  848.